package com.example.demo1.service;

import com.example.demo1.dao.ArticleMapper;
import com.example.demo1.model.ArticleInfo;
import org.apache.ibatis.annotations.Select;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 言初
 * Date: 2024-06-19
 * Time: 18:17
 */
@Service
public class ArticleService {

    // 注入mapper
    @Autowired
    private ArticleMapper articleMapper;



    // 根据用户id查询此用户发表过的所有文章
    public List<ArticleInfo> getListByUid(int uid){
        return articleMapper.getListByUid(uid);
    }


    //  根据用户id，和文章id，来判断如果这个文章是这个用户的那就执行删除操作，要不然就不删除
    public int del (int aid, int uid ){
        return articleMapper.del(aid,uid);
    }


    // 把文章数据存到文章表中(文章标题，文章正文，文章的作者ID)
    public int add(ArticleInfo articleInfo){
        return articleMapper.add(articleInfo);
    }


    // 按照文章ID和用户ID，一方面验证文章是否归属于用户，一方面查询文章的详细信息并返回
    public ArticleInfo getArticleByIdAndUid (int aid, int uid ){
        return articleMapper.getArticleByIdAndUid(aid,uid);
    }


    //根据文章ID和用户ID，一方面验证文章是否归属于用户，一方面把修改的文章内容存入到数据库中
    public int update(ArticleInfo articleInfo){
        return articleMapper.update(articleInfo);
    }


    // 根据文章ID来查询文章对象
    public ArticleInfo getDetailById(int aid){
        return articleMapper.getDetailById(aid);
    }


    // 根据用户ID，去文章表中查询这个用户的总文章数
    public int getArtCountByUid(int uid){
        return articleMapper.getArtCountByUid(uid);
    }


    // 根据文章ID，来实现阅读量加一的操作
    public int incrementRCount(int aid){
        return articleMapper.incrementRCount(aid);
    }



    // 按照偏移量和每页显示条数来进行查询本页中的文章列表：
    public List<ArticleInfo> getListByPage(int psize,int offset){
        return articleMapper.getListByPage(psize, offset);
    }


    // 查询文章表中有多少篇文章
    public int getCount(){
        return articleMapper.getCount();
    }

}
